package com.cskaoyan.javase.oop1._17oop;

/**
 * 面向对象把大象放进冰箱
 * 程序核心是对象,而不是方法调用
 * 对象: 大象,冰箱
 *
 * @since 16:03
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo2 {
    public static void main(String[] args) {
        // 创建对象,实现功能
        Elephant e = new Elephant();
        Fridge f = new Fridge();
        e.eleF = f;
        System.out.println("现在开始把大象放进冰箱~");
        e.into();
        f.open();
        e.into();
        f.close();
        System.out.println("完毕~");
    }
}

// 大象类
class Elephant {
    Fridge eleF;

    // 大象有自己进冰箱的行为,当然前提是冰箱的门开着
    public void into() {
        if (eleF.state) {
            System.out.println("门开了,那我进来了,你快关门~");
            return;
        }
        System.out.println("快把门打开,我要进去了~");
    }
}

// 冰箱类
class Fridge {
    // 属性,用来指示冰箱门的状态,false表示关着,true表示开着
    boolean state = false;

    // 行为,开门和关门
    public void open() {
        state = true;
        System.out.println("冰箱门打开了,请🐘进来~");
    }

    public void close() {
        state = false;
        System.out.println("🐘进来了,那我关门了~");
    }
}